/* 
 * Bitmain Tech, Home of Professional Bitmain Tech
 * Copyright 2014 Bitmain Tech Inc. and/or its affiliates and other contributors
 * as indicated by the @author tags. All rights reserved.
 * See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 */
package com.bitmain.mmst.domain;

import com.bitmain.mmst.core.base.BasicDomain;

/**
 * 领域模型：矿机类型
 *
 * @author Kweny - enkun.jiang@bitmain.com
 * @since 2015年12月20日
 *
 */
public class MinerType extends BasicDomain {
	private static final long serialVersionUID = -404963098534061198L;
	/**
	 * 类型名称
	 */
	private String name;
	/**
	 * 该类型矿机的端口
	 */
	private int port;
	/**
	 * 功耗（KW）
	 */
	private double power;
	/**
	 * 理论算力
	 */
	private double hashTheo;
	/**
	 * 达标算力
	 */
	private double hashPass;
	/**
	 * 算力达标比率
	 */
	private double hashPassRate;
	/**
	 * 风扇数
	 */
	private int fanNum;
	/**
	 * 风扇最大转速
	 */
	private int fanMaxSpeed;
	/**
	 * 温感数
	 */
	private int tempNum;
	/**
	 * 最高温度
	 */
	private int tempMaxValue;
	/**
	 * 最少工作链条数
	 */
	private int chainMinNum;
	/**
	 * 最少工作芯片数
	 */
	private int chipMinNum;
	/**
	 * 矿机类型，如S7，根据type、frequency、chipNumber可以确定model
	 */
	private String type;
	/**
	 * 频率
	 */
	private int frequency;
	/**
	 * 链条数
	 */
	private int chainNumber;
	/**
	 * 单链条芯片数
	 */
	private int chipSingleNumber;
	/**
	 * 核心数，1384:55；1385:50；1387:114
	 * frequency * chipNumber * coreNumber = hashrate
	 */
	private int coreNumber;

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the port
	 */
	public int getPort() {
		return port;
	}

	/**
	 * @param port
	 *            the port to set
	 */
	public void setPort(int port) {
		this.port = port;
	}

	/**
	 * @return the power
	 */
	public double getPower() {
		return power;
	}

	/**
	 * @param power the power to set
	 */
	public void setPower(double power) {
		this.power = power;
	}

	/**
	 * @return the hashTheo
	 */
	public double getHashTheo() {
		return hashTheo;
	}

	/**
	 * @param hashTheo
	 *            the hashTheo to set
	 */
	public void setHashTheo(double hashTheo) {
		this.hashTheo = hashTheo;
	}

	/**
	 * @return the hashPass
	 */
	public double getHashPass() {
		return hashPass;
	}

	/**
	 * @param hashPass the hashPass to set
	 */
	public void setHashPass(double hashPass) {
		this.hashPass = hashPass;
	}

	/**
	 * @return the hashPassRate
	 */
	public double getHashPassRate() {
		return hashPassRate;
	}

	/**
	 * @param hashPassRate
	 *            the hashPassRate to set
	 */
	public void setHashPassRate(double hashPassRate) {
		this.hashPassRate = hashPassRate;
	}

	/**
	 * @return the fanNum
	 */
	public int getFanNum() {
		return fanNum;
	}

	/**
	 * @param fanNum
	 *            the fanNum to set
	 */
	public void setFanNum(int fanNum) {
		this.fanNum = fanNum;
	}

	/**
	 * @return the fanMaxSpeed
	 */
	public int getFanMaxSpeed() {
		return fanMaxSpeed;
	}

	/**
	 * @param fanMaxSpeed
	 *            the fanMaxSpeed to set
	 */
	public void setFanMaxSpeed(int fanMaxSpeed) {
		this.fanMaxSpeed = fanMaxSpeed;
	}

	/**
	 * @return the tempNum
	 */
	public int getTempNum() {
		return tempNum;
	}

	/**
	 * @param tempNum
	 *            the tempNum to set
	 */
	public void setTempNum(int tempNum) {
		this.tempNum = tempNum;
	}

	/**
	 * @return the tempMaxValue
	 */
	public int getTempMaxValue() {
		return tempMaxValue;
	}

	/**
	 * @param tempMaxValue
	 *            the tempMaxValue to set
	 */
	public void setTempMaxValue(int tempMaxValue) {
		this.tempMaxValue = tempMaxValue;
	}

	/**
	 * @return the chainMinNum
	 */
	public int getChainMinNum() {
		return chainMinNum;
	}

	/**
	 * @param chainMinNum
	 *            the chainMinNum to set
	 */
	public void setChainMinNum(int chainMinNum) {
		this.chainMinNum = chainMinNum;
	}

	/**
	 * @return the chipMinNum
	 */
	public int getChipMinNum() {
		return chipMinNum;
	}

	/**
	 * @param chipMinNum
	 *            the chipMinNum to set
	 */
	public void setChipMinNum(int chipMinNum) {
		this.chipMinNum = chipMinNum;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public int getFrequency() {
		return frequency;
	}

	public void setFrequency(int frequency) {
		this.frequency = frequency;
	}

	public int getChainNumber() {
		return chainNumber;
	}

	public void setChainNumber(int chainNumber) {
		this.chainNumber = chainNumber;
	}

	public int getChipSingleNumber() {
		return chipSingleNumber;
	}

	public void setChipSingleNumber(int chipSingleNumber) {
		this.chipSingleNumber = chipSingleNumber;
	}

	public int getCoreNumber() {
		return coreNumber;
	}

	public void setCoreNumber(int coreNumber) {
		this.coreNumber = coreNumber;
	}
	
}
